<?php

class Materials_PageController extends Workset_Controller_Action_Admin {

    function init() {

		//загружаем модуль каталог
        Workset_Module::loadModule('materials');

		parent::init();

        $appHelper = new Materials_Helper_Application();
        Zend_Controller_Action_HelperBroker::addHelper($appHelper);

	}

    function postDispatch() {

    }

    //главная страница админки
    function indexAction() {
        try {
			$this->_response->setRedirect('/materials/page/list-page', 302);
		}
		catch (Exception $e) {
			$this->_response->setException($e);
		}
    }

    function listPageAction() {
		$this->_helper->viewRenderer->setNoRender(true);

		//конфиг текущего действия
		$config = $this->_actionConfig;

		//права проверили :))
		$config['access_checked'] = true;

		//подкинем свой конфиг для станлартного дейсвия /catalogue/admin/list-category
		Zend_Registry::set('actionConfig', $config);

		//свой заголовок
		$this->_layoutPageTitle = $this->_actionConfig['title'];

		//настройки меню для своего action
        $this->_navigationParams['controller'] = $this->_request->getControllerName();
        $this->_navigationParams['action'] = $this->_request->getActionName();
		//$this->_initNavigation();

		//выводи только дерево данной категории
		$code = $this->_actionConfig['category_code'];

		//корневая категория
		$category = Materials_Model_Category::getByCode($code)->current();
		if (!$category instanceof Materials_Model_Category) {
			$this->_helper->application->throwException('Undefined category "'.$code.'"');
            return;
		}

        $parentId = (int)$this->_getParam('nodeid');
        if ($parentId < 1) {
            $parentId = $category->getId();
        }

		//форвардим на стандартное действие, которое выполняет основной функционал
		//подключения грида
		$this->_forward('list-material', 'admin', null, array('nodeid' => $parentId));

	}

    function addPageAction() {
        $this->_helper->viewRenderer->setNoRender(true);

		//конфиг текущего действия
		$config = $this->_actionConfig;

		//права проверили :))
		$config['access_checked'] = true;

		//подкинем свой конфиг для станлартного дейсвия /catalogue/admin/list-category
		Zend_Registry::set('actionConfig', $config);

        $nodeid = (int)$this->_getParam('nodeid');

        if ($nodeid <= 0) {
            $code = $this->_actionConfig['category_code'];

            //корневая категория
            $category = Materials_Model_Category::getByCode($code)->current();
            if (!$category instanceof Materials_Model_Category) {
                $this->_helper->application->throwException('Undefined category "'.$code.'"');
                return;
            }

            $nodeid = $category->getId();
        }

        $this->_navigationParams['controller'] = $this->_request->getControllerName();
        $this->_navigationParams['action'] = $this->_request->getActionName();
	    //$this->_initNavigation();

        $backUrl = $this->_helper->url('list-page');

        $this->_forward('add-material', 'admin', null, array('nodeid' => $nodeid, 'backurl' => $backUrl));
    }

    function editPageAction() {
        $this->_helper->viewRenderer->setNoRender(true);

		//конфиг текущего действия
		$config = $this->_actionConfig;

		//права проверили :))
		$config['access_checked'] = true;

		//подкинем свой конфиг для станлартного дейсвия /catalogue/admin/list-category
		Zend_Registry::set('actionConfig', $config);

        $id = (int)$this->_getParam('id');

        $this->_navigationParams['controller'] = $this->_request->getControllerName();
        $this->_navigationParams['action'] = $this->_request->getActionName();
	    $this->_initNavigation();

        $backUrl = $this->_helper->url('list-page');

        $this->_forward('edit-material', 'admin', null, array('id' => $id, 'backurl' => $backUrl));
    }

}